From: Boris Ostrovsky Date: Fri, 22 Jul 2016 17:14:01 +0000 (-0400) Subject: tools/libxc: Properly increment ApicIdCoreSize field on AMD X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~707 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:///%22http:/www.example.com/cgi/%22https:/?a=commitdiff_plain;h=a3336a507519c1d28db3bbff8e439aa3811733f3;p=xen.git tools/libxc: Properly increment ApicIdCoreSize field on AMD Current code incorrectly adds 1 to full register instead of incrementing the field in bits 15:12. Signed-off-by: Boris Ostrovsky Acked-by: Wei Liu --- diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c index 84f4e0810b..fbbac9e25a 100644 --- a/tools/libxc/xc_cpuid_x86.c +++ b/tools/libxc/xc_cpuid_x86.c @@ -331,7 +331,8 @@ static void amd_xc_cpuid_policy(xc_interface *xch, * ECX[15:12] is ApicIdCoreSize: ECX[7:0] is NumberOfCores (minus one). * Update to reflect vLAPIC_ID = vCPU_ID * 2. */ - regs[2] = ((regs[2] & 0xf000u) + 1) | ((regs[2] & 0xffu) << 1) | 1u; + regs[2] = ((regs[2] + (1u << 12)) & 0xf000u) | + ((regs[2] & 0xffu) << 1) | 1u; break; case 0x8000000a: {